昨天學習了 grok 的語法,成功解析了 log File。
現在有個問題出現了,因為我的需求是將自己程式開發中的狀況進行 Logging;
而且我的本機也沒有架設 Logstash,那我要怎麼把我的檔案上傳到雲端啊?
Lostash Pipelines 研究個半天,還是想不出有什麼招式可以把本機的檔案上傳
想來想去,還是試著透過 Elastic cloud 的介面。上次有提到透過Elastic cloud 的 Data Visualizer,無法成功解析 Log file;但今天讀到Elastic co Blog官網的文章ttps://www.elastic.co/blog/importing-csv-and-log-data-into-elasticsearch-with-file-data-visualizer
文章中的 log :
<190>38377: GOW45-AR002: Apr 18 08:44:02.434 GMT: %JHG_MS-6-ROUTE_EVENT_INFO: Route changed Prefix 10.156.26.0/23, BR 10.123.11.255, i/f Ki0/0/0.849, Reason None, OOP Reason Timer Expired
怪了,格式這麼亂,還是可以被 Data Visualizer 給解析成功。
好吧,可能是我之前的 Log File 的樣子實在太冷門了,那我從善如流進行調整。
調整前的格式:
INFO [2020-18-09 21:58:35] New_Start-------------
WARN [2020-18-09 21:58:35] Now_Loaging99%
R 程式碼,在指定格式時調整如下:
logger <- layout_glue_generator(format = "{time} {level} {msg}")
log_layout(logger)
調整後的資料格式,把日期時間往最前面的位置放:
2020-09-18 22:19:51 INFO New_Start
2020-09-18 22:19:51 WARN Now_Loaging83%
果然被正確的識別出來
再點按一下 Override settings ;可以發現我們這幾天在研究的好朋友 "Grok pattern"。
如果有必要的話,也可以自己手動調整編修 Grok pattern
所以,如果你和我一樣有打算將自己平常進行程式寫作的 log file 上傳到雲端進行分析。切記要先拿幾筆樣本進行測試,如果 Data Visualizer 無法正確識別的話,趁早改變一下資料格式吧。